Population Health Management Process API - Implementation Template

(0 reviews)

Setup guide

Prerequisites

Dependent Applications

This application depends on the following applications to convert messages into FHIR format.

  • HL7 v2 to FHIR System API
  • C-CDA to FHIR System API
  • X12 to FHIR System API

MQ Queue Setup

This application uses Anypoint MQ to manage the queues of messages to process. There are 3 queues that need to be created in Anypoint MQ, one for HL7, one for CCDA, and one for X12 messages. The applications assumes that FIFO queues are used to preserve message order, however you can choose the queue that works for your use case.

Setup guide

Importing Templates into Anypoint Studio

  1. In Studio, click the Exchange X icon in the upper left of the taskbar.
  2. Log in with your Anypoint Platform credentials.
  3. Search for the template.
  4. Click Open.

Running Templates in Anypoint Studio

After you import your template into Studio, follow these configuration steps to run it.

Common Configuration

  • mule.env - sets the environment where the application is to be deployed. It should be configured in config-<mule.env>.yaml file. For a studio deployment, the recommended mule.env value is local.
  • mule.key - sets the encryption password to be used for encrypting secure properties. Update as needed.
  • api.baseurl - sets the base url of the api. Replace/override as needed when deploying to any environment. It should be configured in config-<mule.env>.yaml file. Default value is https://localhost:8082/api, when mule.env is local.
  • api.autodiscoveryID should be configured in config-<mule.env>.yaml file.

Please refer to the attached link on how to secure the configuration properties.

HTTPS Configuration

  • https.host — sets the service host interface. It should be configured in config-<mule.env>.yaml file (Defaults to 0.0.0.0 for all interfaces).
  • https.port — sets the HTTPS service port number. It should be configured in config-<mule.env>.yaml file (Default 8082).
  • TLS Configuration - Keystore properties setup:
    • keystore.alias - sets the alias to the keystore. It should be configured in config-<mule.env>.yaml file.
    • keystore.path - sets the path to the key file. Key should be availabe in /src/main/resources/keystore. It should be configured in config-<mule.env>.yaml file.
    • keystore.keypass — sets keystore keypass to support HTTPS operation. It should be encrypted and configured in config-secured-<mule.env>.yaml file.
    • keystore.password— sets keystore password to support HTTPS operation. It should be encrypted and configured in config-secured-<mule.env>.yaml file.

Please refer to the attached link on how to generate the Keystore.

Population Health Application Configuration

The application requires a few things to be configured such as Anypoint MQ and external services connection information. Configure them in the properties file located in the config/properties folder.

Anypoint MQ
  • anypoint-mq.server-url should be configured in config-<mule.env>.yaml file. The Anypoint MQ server URL.
  • anypoint-mq.client-id should be configured in config-<mule.env>.yaml file. Your Anypoint MQ client ID.
  • anypoint-mq.hl7v2-queue-name should be configured in config-<mule.env>.yaml file. The HL7 queue name in Anypoint MQ.
  • anypoint-mq.x12-queue-name should be configured in config-<mule.env>.yaml file. The X12 queue name in Anypoint MQ.
  • anypoint-mq.ccda-queue-name should be configured in config-<mule.env>.yaml file. The CCDA queue name in Anypoint MQ.
  • anypoint-mq.client-secret should be configured in config-<mule.env>.yaml file. Your Anypoint MQ client secret.
HL7 v2 to FHIR System API
  • hl7v2-sys-api.host should be configured in config-<mule.env>.yaml file. The API host.
  • hl7v2-sys-api.port should be configured in config-<mule.env>.yaml file. The API port.
  • hl7v2-sys-api.basepath should be configured in config-<mule.env>.yaml file. The API base path.
  • hl7v2-sys-api.responseTimeout should be configured in config-<mule.env>.yaml file. The connection response timeout.
  • hl7v2-sys-api.reconnection.frequency should be configured in config-<mule.env>.yaml file. The reconnection frequency.
  • hl7v2-sys-api.reconnection.attempts should be configured in config-<mule.env>.yaml file. The reconnection attempts.
  • hl7v2-sys-api.clientid should be configured in config-<mule.env>.yaml file. The API client ID.
  • hl7v2-sys-api.clientsecret should be configured in config-<mule.env>.yaml file. The API client secret.
X12 to FHIR System API
  • x12-sys-api.host should be configured in config-<mule.env>.yaml file. The API host.
  • x12-sys-api.port should be configured in config-<mule.env>.yaml file. The API port.
  • x12-sys-api.basepath should be configured in config-<mule.env>.yaml file. The API base path.
  • x12-sys-api.responseTimeout should be configured in config-<mule.env>.yaml file. The connection response timeout.
  • x12-sys-api.reconnection.frequency should be configured in config-<mule.env>.yaml file. The reconnection frequency.
  • x12-sys-api.reconnection.attempts should be configured in config-<mule.env>.yaml file. The reconnection attempts.
  • x12-sys-api.clientid should be configured in config-<mule.env>.yaml file. The API client ID.
  • x12-sys-api.clientsecret should be configured in config-<mule.env>.yaml file. The API client secret.
C-CDA to FHIR System API
  • ccda-sys-api.host should be configured in config-<mule.env>.yaml file. The API host.
  • ccda-sys-api.port should be configured in config-<mule.env>.yaml file. The API port.
  • ccda-sys-api.basepath should be configured in config-<mule.env>.yaml file. The API base path.
  • ccda-sys-api.responseTimeout should be configured in config-<mule.env>.yaml file. The connection response timeout.
  • ccda-sys-api.reconnection.frequency should be configured in config-<mule.env>.yaml file. The reconnection frequency.
  • ccda-sys-api.reconnection.attempts should be configured in config-<mule.env>.yaml file. The reconnection attempts.
  • ccda-sys-api.clientid should be configured in config-<mule.env>.yaml file. The API client ID.
  • ccda-sys-api.clientsecret should be configured in config-<mule.env>.yaml file. The API client secret.
AWS HealthLake System API
  • healthlake-sys-api.host should be configured in config-<mule.env>.yaml file. The API host.
  • healthlake-sys-api.port should be configured in config-<mule.env>.yaml file. The API port.
  • healthlake-sys-api.basepath should be configured in config-<mule.env>.yaml file. The API base path.
  • healthlake-sys-api.responseTimeout should be configured in config-<mule.env>.yaml file. The connection response timeout.
  • healthlake-sys-api.reconnection.frequency should be configured in config-<mule.env>.yaml file. The reconnection frequency.
  • healthlake-sys-api.reconnection.attempts should be configured in config-<mule.env>.yaml file. The reconnection attempts.
  • healthlake-sys-api.clientid should be configured in config-<mule.env>.yaml file. The API client ID.
  • healthlake-sys-api.clientsecret should be configured in config-<mule.env>.yaml file. The API client secret.

Tested and verified

This solution was developed and tested on Anypoint Studio 7.15 and Mule Runtime 4.4.0.

Run the application

  1. Right-click the template project folder.
  2. Hover your mouse over 'Run as'.
  3. Click Mule Application (configure).
  4. Inside the dialog, select Environment and set the variable mule.env to the appropriate value (dev or local).
  5. Inside the dialog, select Environment and set the variable key to the property encryption key that you used to encrypt your secure properties.
  6. Click Run.

Deployment instructions for CloudHub using provided scripts

Ensure the Maven profile CloudHub-DEV has been properly configured in your settings.xml file. Reference can be found by downloading the Accelerator Common Resources asset. Additional instructions are available in the Getting Started with MuleSoft Accelerators - Build Environment guide.

Update the config-<env>.yaml properties appropriately and then use one of the following scripts to deploy the application to CloudHub:

  • packageDeploy.sh or deployOnly.sh (Mac/Linux).
  • packageDeploy.cmd or deployOnly.cmd (Windows).

Test the template

  • Use Advanced Rest Client or Postman to send a request over HTTPS. The template includes a Postman collection in the src/test/resources folder. Update the collection variable(s) after successful import.

Reviews

TypeTemplate
OrganizationMuleSoft
Published by
MuleSoft Solutions
Published onOct 12, 2023
Asset overview

Asset versions for 1.0.x

Asset versions
VersionActions
1.0.2
1.0.1
1.0.0